﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using LogicaControl;
using Interfaces.Funciones;
using ModeloEntidades;

namespace Interfaces.Loguin
{
    public partial class UI_Loguin : Form
    {
        /**************************************************************
        //                       D E L E G A D O S
        **************************************************************/
        public delegate void logueado(Administrador unAdministrador_logueado);

        /**************************************************************
        //                         E V E N T O S
        **************************************************************/
        public event logueado cuandoLogueo;

        //---------------------------------------------------------------------------------------
        private Controlador_Loguin control_loguin = Controlador_Loguin.Instance;
              

        
        public UI_Loguin()
        {
            InitializeComponent();
        }

        private void button_loguin_Click(object sender, EventArgs e)
        {

            if (textBox_usuario.Text == "")
            {
                label_error_loguin.Text = "Debe ingresar al menos un usuario";
            }
            else if (textBox_contraseña.Text == "")
            {
                label_error_loguin.Text = "Debe ingresar al menos una contraseña";
            }
            else
            {

                MouseCursor.en_espera();
                this.button_loguin.Enabled = false;
                
                var unAdministrador_logueado = control_loguin.iniciar_session("Fiscalizacion",
                                                                              textBox_usuario.Text,
                                                                              textBox_contraseña.Text);

                MouseCursor.original();
                this.button_loguin.Enabled = true;


                if (unAdministrador_logueado != null)
                {
                    // Si hay suscriptores al avento.....
                    if (this.cuandoLogueo != null)
                    {
                        this.Hide();
                        this.cuandoLogueo(unAdministrador_logueado);   // | E V E N T O |
                        this.Dispose(); // Destruyo la ventana
                    }
                }
                else
                {
                    label_error_loguin.Text = "Usuario o contraseña incorrectos";
                }
            }
           

        }

        private void UI_Loguin_Load(object sender, EventArgs e)
        {
            label_error_loguin.Text = "";
        }

        private void textBox_usuario_TextChanged(object sender, EventArgs e)
        {
            label_error_loguin.Text = "";
        }

        private void textBox_contraseña_TextChanged(object sender, EventArgs e)
        {
            label_error_loguin.Text = "";
        }

        private void button_cancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
